package com.betty.cscams.service;

import com.betty.cscams.entity.PsyScore;
import com.betty.cscams.vo.ScoreQueryBean;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * ---------------------------
 *  心理测评成绩Service接口(PsyScoreService)         
 * ---------------------------
 */
public interface PsyScoreService extends CurdService<PsyScore> {

    /**
     * 根据学生和学期查询成绩
     * @param studentNum 学号
     * @param termId 学期ID
     * @return 成绩信息
     */
    PsyScore findByStudentAndTerm(String studentNum, Long termId);
    
    /**
     * 计算班级排名
     * @param termId 学期ID
     * @param deptId 班级ID
     */
    void calculateRanking(Long termId, Long deptId);
    
    /**
     * 导出成绩
     * @param params 查询条件
     * @param response HTTP响应
     */
    void exportScores(ScoreQueryBean params, HttpServletResponse response);
    
    /**
     * 查询低分学生
     * @param termId 学期ID
     * @param threshold 分数阈值（低于此分数的学生将被查询）
     * @return 低分学生列表
     */
    List<PsyScore> findLowScores(Long termId, int threshold);
} 